<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数组降维
        // 写一个函数,接收一个数组作为参数,返回结果为已经降维的数组
        // 如下这个数组经过函数的处理侯得到[1,2,3,4,5]这个结果
        const arr = [1, [[2], [3, [4]], 5]]


        //some&concat
        //利用some检查数组中是否含有数组有就在调用自己进行降维
        function fun(arr) {
            arr = [].concat(...arr);
            //再检查降维后的数组中是否还包含子数组
            let newArr = arr.some(function (element) {
                return Array.isArray(element);
            })
            if (newArr) {
                //如果包含子数组
                arr = fun(arr);
                //就只能再降维一次，直到检查不再包含子数组为止
            }
            return arr;
        };
        console.log(fun(arr));
    </script>
</body>

</html>